(function($){if(undefined===$.wysiwyg){throw "wysiwyg.colorpicker.js depends on $.wysiwyg";} if(!$.wysiwyg.controls){$.wysiwyg.controls={};} $.wysiwyg.controls.colorpicker={modalOpen:false,color:{back:{prev:"#ffffff",palette:[]},fore:{prev:"#123456",palette:[]}},addColorToPalette:function(type,color){if(-1===$.inArray(color,this.color[type].palette)){this.color[type].palette.push(color);}else{this.color[type].palette.sort(function(a,b){if(a===color){return 1;} return 0;});}},init:function(Wysiwyg){if($.wysiwyg.controls.colorpicker.modalOpen===true){return false;}else{$.wysiwyg.controls.colorpicker.modalOpen=true;} var self=this,elements,dialog,colorpickerHtml,dialogReplacements,key,translation;dialogReplacements={legend:"Colorpicker",color:"Color",submit:"Apply",reset:"Cancel"};colorpickerHtml='
';for(key in dialogReplacements){if($.wysiwyg.i18n){translation=$.wysiwyg.i18n.t(dialogReplacements[key],"dialogs.colorpicker");if(translation===dialogReplacements[key]){translation=$.wysiwyg.i18n.t(dialogReplacements[key],"dialogs");} dialogReplacements[key]=translation;} colorpickerHtml=colorpickerHtml.replace("{"+key+"}",dialogReplacements[key]);} if($.modal){elements=$(colorpickerHtml);if($.farbtastic){this.renderPalette(elements,"fore");elements.find(".wheel").farbtastic(elements.find("input:text"));} $.modal(elements.html(),{maxWidth:Wysiwyg.defaults.formWidth,maxHeight:Wysiwyg.defaults.formHeight,overlayClose:true,onShow:function(dialog){$("input:submit",dialog.data).click(function(e){var color=$('input[name="color"]',dialog.data).val();self.color.fore.prev=color;self.addColorToPalette("fore",color);if($.browser.msie){Wysiwyg.ui.returnRange();} Wysiwyg.editorDoc.execCommand('ForeColor',false,color);$.modal.close();return false;});$("input:reset",dialog.data).click(function(e){if($.browser.msie){Wysiwyg.ui.returnRange();} $.modal.close();return false;});$("fieldset",dialog.data).click(function(e){e.stopPropagation();});},onClose:function(dialog){$.wysiwyg.controls.colorpicker.modalOpen=false;$.modal.close();}});}else if($.fn.dialog){elements=$(colorpickerHtml);if($.farbtastic){this.renderPalette(elements,"fore");elements.find(".wheel").farbtastic(elements.find("input:text"));} dialog=elements.appendTo("body");dialog.dialog({modal:true,open:function(event,ui){$("input:submit",elements).click(function(e){var color=$('input[name="color"]',dialog).val();self.color.fore.prev=color;self.addColorToPalette("fore",color);if($.browser.msie){Wysiwyg.ui.returnRange();} Wysiwyg.editorDoc.execCommand('ForeColor',false,color);$(dialog).dialog("close");return false;});$("input:reset",elements).click(function(e){if($.browser.msie){Wysiwyg.ui.returnRange();} $(dialog).dialog("close");return false;});$('fieldset',elements).click(function(e){e.stopPropagation();});},close:function(event,ui){$.wysiwyg.controls.colorpicker.modalOpen=false;dialog.dialog("destroy");dialog.remove();}});}else{if($.farbtastic){elements=$("").css({"position":"fixed","z-index":2000,"left":"50%","top":"50%","background":"rgb(0, 0, 0)","margin-top":-1*Math.round(Wysiwyg.defaults.formHeight/2),"margin-left":-1*Math.round(Wysiwyg.defaults.formWidth/2)}).html(colorpickerHtml);this.renderPalette(elements,"fore");elements.find("input[name=color]").val(self.color.fore.prev);elements.find(".wheel").farbtastic(elements.find("input:text"));$("input:submit",elements).click(function(event){var color=$('input[name="color"]',elements).val();self.color.fore.prev=color;self.addColorToPalette("fore",color);if($.browser.msie){Wysiwyg.ui.returnRange();} Wysiwyg.editorDoc.execCommand('ForeColor',false,color);$(elements).remove();$.wysiwyg.controls.colorpicker.modalOpen=false;return false;});$("input:reset",elements).click(function(event){if($.browser.msie){Wysiwyg.ui.returnRange();} $(elements).remove();$.wysiwyg.controls.colorpicker.modalOpen=false;return false;});$("body").append(elements);elements.click(function(e){e.stopPropagation();});}}},renderPalette:function(jqObj,type){var palette=jqObj.find(".palette"),bind=function(){var color=$(this).text();jqObj.find("input[name=color]").val(color);if($.farbtastic){jqObj.find("input[name=color]").trigger("keyup");}},colorExample,colorSelect,i;for(i=this.color[type].palette.length-1;i>-1;i-=1){colorExample=$("").css({"float":"left","width":"16px","height":"16px","margin":"0px 5px 0px 0px","background-color":this.color[type].palette[i]});colorSelect=$("